SimpleFTP

© Copyright 1999-2000, Richard Hodger.
All rights reserved.
rick@thehub.u-net.com

Introduction

Copyright
Registration
Introduction
Features
Requirements
Installation

Usage

Basic
Advanced

Other Important Stuff

About MUI
Development History
Credits
Locale Translations
Bugs

Copyright & Legal Information

SimpleFTP was developed by Rick Hodger (rick@thehub.u-net.com), all the code for the FTP protocol is original and not based on any other program or source code. Some of the code used for accessing the TCP/IP interface was written by Rob Hutchinson.

All information regarding the File Transfer Protocol was gathered from RFC 959, and SimpleFTP tries to follow these standards as best as possible (You should note that SimpleFTP uses the "PASV" command to initiate file transfers, servers that do not support this command are not in accordance with the RFCs).

SimpleFTP is Copyright © 1999-2000, R Hodger. All rights reserved.

Noone involved with the creation of this product, can be held responsable for the use or misuse of any part of this archive/package.

No part of this archive can be distributed in an altered state, the archive must be kept as originally created, any alterations to either the archive itself, the contents of the archive or to any contained executables will be considered as reverse-engineering. Doing so is a breach of copyright.

Permission is granted for SimpleFTP to be distributed by AmiNet, either via electronic transmission or stored on media.

Permission is given to Wirenet Ltd. to distribute the WireNet version of this archive via hard media (Not electronically transmitted, that service to be provided by the author), but only to customers of their services.

Permission is granted to the "El Amiga me Encanta" project to include and distribute the SimpleFTP software package (including the SimpleFTP Homepage Wizard) on hard media, and electronically. They also have permission to translate any associated documentation without need to contact the author.

Distribution in any form is not permitted, without written permission from the author. Illegal distribution may result in legal action.


Registration

SimpleFTP is shareware. A lot of time, effort and rebooting has gone into SimpleFTP, anyone listed in the credits is welcome to claim a free copy. Registration costs UK£10, and I'm not going to go into all that business about "If after 30 days you haven't registered you must uninstall this software" crap, it annoys the hell out of me, so why should you have to put up with it?

Anyway, If you don't want to register, you don't have to. You'll have a full version of the program minus some important bits, and a time limit of 25 minutes. If you're happy using the unregistered version, then why should I force you to re-install the damn thing every month or so?

Back to the plot, if you want to register, send UK£10 or whatever your local equivelent is to:

Richard Hodger
10 Dermott Gardens
Comber
Newtownards
County Down
Northern Ireland, UK
BT23 5LH

Whereupon I will send you the information you need to unlock SimpleFTP.

Note: Unregistered version limitations are: Expert Mode Disabled, limited to 64 site entries (128 in full version), Anti-Idle is disabled and the entire thing automatically quits after 25 minutes. Same restrictions for the Wirenet version, except no time-out.

Information on online registration can be found at the SimpleFTP homepage, http://www.thehub.u-net.com/

Wirenet Customers: An upgrade from the Wirenet version is only UK£5, but confirmation of your subscription to Wirenet will have to be made before the serial number is given out.


Introduction

FTP stands for "File Transfer Protocol". This is method of transferring files between computers, usually across the Internet, and so requires that you have a TCP/IP stack of some sort.

This is also the usual method of setting up web-pages and web-sites, files are created locally and then transfered to the server using an FTP client.

More importantly though, it enables you to log onto "anonymous" sites, containg vast resources of software, such as Aminet.


Features

Easy to use
Uses MUI for configurability
Compatible with many older servers that can cause problems with newer clients
Keeps a list of "favourite" FTP sites
High speed transfer of files, including a special mode for even faster transfers
Special "Expert" mode for advanced users.
Anti-Idle function.

Requirements

 AmigaOS 3.0+

 MUI v3.8+ (Including copies of BetterString.mcc and the NList classes).

 A working internet set-up (Including a TCP/IP stack such as Miami)

 For the more advanced features, some technical knowledge of Operating Systems would help


Installation

Just run the installation script, it'll do everything for you. But please note that it will not create a directory for you.

Once installed, run SimpleFTP and then edit the configuration according to your needs.

Advanced: "SimpleFTP.sites" is a text file that contains your saved list of FTP sites. It is editable, but it is important that between each entry and empty line starting with "#" is inserted. This marks the start of a site entry.


Basic Usage

Add a New Site

To add a new FTP site to SimpleFTP is pretty easy, just follow these simple steps:

1) Make sure you are on the "Site Manager" page.
2) Click the "Add" button once (Or press "A").
3) Click once on the site named "-New Site-".
4) Give your new site a name using the "Site-Name" gadget.
5) Type in the address of the server, eg. ftp.whatever.com
6) Most servers default to port 21, but you may need to change this if told to.
7) If you want to login anonymously, leave the anonymous gadget set to "yes", otherwise set it to "No" and fill in the user-name and password gadgets.
8) If you automatically want to skip to a specific directory on the remote server, fill in the "Remote Dir" gadget. Otherwise leave it blank.
9) "Local Dir" specifies the directory that downloaded files will be saved into.

When you want to connect to your new site, simply select the site of your choice in the "Site Manager" and click "Connect" (Alternatively, you can double-click on the name of the site in the list).

Using an FTP site

The FTP page consists of two file listers, and a column of buttons down the centre, the following is a list of those buttons and their functions.



This shows your current location on the releated list of files, the "/" button allows you to return to the parent directory.
Remote/Local - As there is only one list of buttons, clicking this one causes them to affect either the Remote list or the Local list respectively
View - View the selected file.
Receive/Send - Download or upload the selected file(s) and/or directories. (Note: You can only upload directories, not download them).
Refresh - Reload the directory contents.
Make Dir - Creates a single directory.
Rename - Changes the name(s) or the selected file(s) and/or directories.
Delete - Delete the selected file(s).
Auto/ASCII/Binary - Determines how files are uploaded or downloaded. "Auto" will try to detect the best method, "ASCII" will convert carriage returns and line feeds to the appropriate ones for either the local or remote systems and "Binary" is the method best used for anything else.

Aminet Download Tool (ADT)

This is a special mode, only supported by the Aminet archives. It allows you to see a list of the new files over the last 7 or 14 days. To enable, simply select (or enter) the details of your closest Aminet site and check the ADT checkmark gadget. Once this is check you will be able to select the length of time you want to check files for (either 7 or 14 days) from the accompanying cycle gadget.

When making a return visit using ADT, providing the last visit was within your selected time period (7/14 days) the new entries will be highlighted for you. If this is your first visit, or you have not recently visited all the entries will be highlighted.


Advanced Usage

Note: This section will assume you are experienced in using an FTP client, and that you also have some knowledge of file-systems and AmigaOS in general.

Transfer Modes

The transfer mode is how files are transmitted by, or received by the FTP server. Two standard modes exist, Binary and ASCII.

On the "FTP" page, there is a cycle gadget which defaults to "Auto", you use this to change between transfer modes.

AutoThis attempts to determine whether the file being received is an ASCII file, or Binary. Please note that this method is not yet foolproof, and should it fail it will default to Binary.
ASCIIWhen using this mode, carrage returns and line-feeds are translated into the UNIX equivelent. Binary files transfered via this stand a good chance of being corrupted on arrival.
BinaryThe vast majority of files will be transferred through this method. It should be used for archives, images, sound samples etc etc.

Auto-Disconnect

When downloading/uploading files, the transfer window contains a tick-box for "Auto-Disconnect". If this is ticked, after all current and pending transfers have been completed, it will automatically disconnect from the server and then (hopefully) tell the TCP/IP stack to go offline. Note: This has only been tested with Miami, if it doesn't work with your TCP/IP stack please tell me!

Advanced Configuration

Note: Items with a "*" after them indicate that this is disabled in demonstration and Wirenet versions

"Cache Files In Memory"

This determines how SimpleFTP saves downloaded files to disk. If not set, it will save the data progressivly to disk in 4 kilobyte blocks. This means that should something go wrong, you can "resume" the transfer without losing any of the data so far downloaded.

However, setting this will mean that files will not be saved to disk until after the transfer has completed. Although this means that if you should crash/disconnect, you will not be able to resume the download it makes the transfers much faster. This will really only be of use to people with fast, reliable connections such as ISDN or a network connection to the internet.

Note: Localised tests show the progressive mode to have a maximum of about 80-90kb per second, while the other mode gives about 120-130kb per second. Tests performed on a 040 (40Mhz).

"Upload Icon"

When you are connected, SimpleFTP will add an icon to your desktop named "Upload to [sitename]", this will allow you to upload to the current directory of whatever site you are on simply by dragging any number of files to this icon.

This sets what image SimpleFTP will use for that icon, it needs to be in the standard Workbench Icon format. The one set by default is "progdir:icons/upload", note that the name is missing the ".info" part!

"Viewer"

Sets what program your going to use to "view" files with, filename is indicated by "%f", for example: "SYS:Utilities/Multiview %f"

"Expert" *

This enables the "Expert" mode, which gives you extra functions for use when connected to an FTP server.

Chng ModeAllows you to alter file and directory permissions using the UNIX standard, this command now calculates the number for you.
ExecuteAllows you to execute a server side command line. Commands need to be enabled on the FTP server.
Mail to UserE-Mails a file to a specified e-mail address.
Raw CMDAllows you to send a raw command to the FTP server. For example, sending a "STAT" will give you your settings for the current FTP session. Note: You'll need to look at the log page to see the results!
Recursive UploadAllows you to upload an entire directory structure to the current FTP directory. Especially useful for uploading web sites.

"Anti Idle" *

Untick to disable, and tick to enable. Prevents your connection from timing out.

"DEBUG" tooltype

Enables the debugging engine. It will create a file named "Debug.log" in the current directory. You should only use this if you are having extensive problems and wish to report them to the author, otherwise please don't use this - it slows the entire program down a lot!

"PASV"

Causes SimpleFTP to use PASV data connections rather than PORT connections. Should be enabled if using a proxy server, or you are using a gateway of some sort.

"PASV IP Address"

When you use the PASV mode, servers will send an IP address to connect to as well. Unfortunatly, when a server is connected to more than one network, they can send the wrong address. Setting this to "Ignore" will make SimpleFTP ignore the address the server has sent. Only use this if you have problems when using the PASV mode.

"TCP/IP Buffer"

This sets the size of the buffer that SimpleFTP uses for sending and receiving of files, fine tuning of this can result in speed increases. The average for best speeds using a modem seems to be a 6kb buffer.

"Priority"

Allows you to change the priority of the program.

Logging

The "Log" page will show you a rough log of the interaction between the client and the server. Should you find a bug, please try to include a copy of the log in your report.

ARexx

At present there are no ARexx commands beyond the standard MUI ones.


Magic User Interface

SimpleFTP uses Magic User Interface (MUI) by Stefan Stuntz. MUI is shareware, details of registering and the MUI Copyright can be found in the MUI archive.

SimpleFTP uses the MUI custom class "Busy.mcc" by Klaus Melchior, and is (C) 1994-96 by Klaus Melchior.

SimpleFTP uses the MUI custom class "BetterString.mcc" by Allan Odgaard and is (C) 1998 by Allan Odgaard.

SimpleFTP uses the MUI custom class "NList.mcc" and "NListview.mcc" by Gilles Masson and is (C) 1996-1997 by Gilles Masson.


Development History

First, a small explanation of the version numbers. Recently I have changed to using two decimel places in the version number, the reason for this is quite simple. For example, v1.83 denotes that this paticular version is bugfix "3" of version 1.8, the "8" denotes the minor releases and the "1" the major releases. NewIcons by Luca Longone
Now estimates time left til end of download as well as the bytes-per-second count.
CHMOD is a lot friendlier now, it calculates the number for you.
Annoying "About" window is gone completely now.
Added a few extra bits into the logfile, such as version number and so on...makes debugging easier, especially when people don't tell you what version they're using :)
0.1First version, internal only.
Could just about list directories.
0.2Site Manager working.
Rudimentary, slow uploading and downloading.
0.3Super-fast transfers.
Bug in directory listings corrected.
0.4Minor functions added, eg. deleting, make dirs etc.
0.5Added app-icon functionality, and ability to distinguish between Binary and ASCII files using Idm.library
0.6Internal only
0.7Added: Expert Mode and Anti-Idle.
First version of the Wirenet Compile.
First official shareware version.
0.8Added "bytes per second" counter.
Added a "View" function.
Updated the directory listing routines to include the transfer gauge, should also be a bit faster now.
0.9Altered the login routine to include more error codes.
Speeded up download speeds by, roughly, an extra 4000-5000 bytes / second.
Shouldn't lock up anymore if it cannot find the "upload" icon.
Fixed the CTRL-C detection :)
1.0Added "Recursive Upload" to the Expert mode.
Added Auto-Disconnect function.
Added experimental FTP proxy routines.
1.1Added experimental SOCKS v5 support.
Fixed a bug in the directory parsing routines.
1.2Updated the SOCKS v5 support.
Double-clicking on the site-list in the site manager causes it to attempt to connect.
Removed annoying requestor on start-up for registered users.
Site-Manger's site-list now updates as you type.
Added "link" support to the file-lister.
1.3
1.4Changed the directory listing routines.
Added Locale support.
Added a nice installer script, just to make things even simpler ;)
1.4BFixed some locale bugs....silly ones. Sorry :)
1.5Fixed remaining locale bugs.
Fixed a few other bugs, including the fact that the uploading routines didn't include the time estimation.
Included spanish translation courtesy of Angel Alvarez from "Mundo Amiga".
1.6Updated the directory listing routines so they are now a hell of lot faster.
Some more translations by people below.
Added a check as some DNS servers seem to be reporting that an address exists even though it doesn't resolve to an IP address.
Added nice little images instead of the "[DIR]".
Changed the local path requestor to the default MUI PopDrawer image.
1.7Changed to NList.mcc and NListview.mcc
Added "Config" page.
Fixed a mistake that was causing some buttons to become deformed.
Added the changable data buffer, this was fixed to 4kb before.
Changed portuguese catalog to that of Alfredo Martins as I was told that the previous one was using some strange words that didn't make sense.
1.75Small update to fix some bugs in the interface.
1.80Finally fixed the bug that stopped the program from being started from a CLI.
Added an Aminet Directory Tool (ADT) mode.
The ADT mode required a modification to the "SimpleFTP.sites" file, so wrote a tool to update this for people.
1.83Updated the directory listing routines, much, much faster now.
Now recognises when the server has timed out, properly ;)
Updated the ADT mode so it would recognise and highlight new entries. Unfortunatly this meant yet another change to the"SimpleFTP.sites" file, so a new converter is included as well as the old one.
1.85Fixed a bug that was causing a total lockup when you tried to enter a site's details without having selected a site.
A few internal changes, basically to make the code look a bit neater ;)
Added the Swedish catalogue.
1.89Fixed the copyright for 2000 :)
Clicking on receive to retrieve a file that you can't see, but know the name of; fixed.
Added "PRIORITY" tooltype - some people complained that the built-in priority of 20 was conflicting with their input.device or with Executive.
As the program is unable to predict how long it's going to take to list a directory, it now shows how many entries it currently has while it is downloading.
Added Greek catalogue.
1.93Fixed the nasty flickering Site Manager.
Fixed the unresponsive interface.
Changed the bsdsocket.library functions into pure assembly, they are now noticably faster.
Tracked down the Enforcer hits; shouldn't be any now.
2.10Changed the main FTP page to a double-lister style thing, so it shows both local and remote files at the same time.
Recursive uploading is no-longer limited to registered users only.
Added option to use either PORT or PASV commands to initate data transfers, this should eliminate some problems with some servers.
Should hopefully be okay with Serv-U FTP servers now.
Added some handy menus.
Added a paste function to the "Get User Input" window.
Added an option to import URLs into the Site Manager.
Now sets the stack size internally.
Added Czech translation.
2.14Removed the usage of idm.library for filetyping, it seemed to have some problems with certains files.
Auto-Disconnect has been changed to use miami.library directly, am waiting on information about genesis.library before I write it in.
Dir listing is now much faster, and shouldn't cause any errors any more (Cheers Rob!)
There are now a couple of stats boxes on the log page, showing how many files and bytes have been uploaded/downloaded.
2.15Whoops...silly mistake removed that stopped SimpleFTP from downloading files bigger than your total RAM. Sorry.
2.22
Config page moved to it's own window.
Changed the internal default Aminet address to us.aminet.net (instead of de.aminet.net).
Added the "OPEN" FTP proxy type.
Configuration is now saved to a file instead of the tooltypes.
BUGFIX: Fixed a problem when connecting to Geocities.
BUGFIX: Localised the menus :)


Credits

Luca "Hexaae" LongoneFor the nice NewIcons he sent me.
Andrew "Assembler Andy" BellGeneral encouragement (eg. "Hurry up and write that FTP client, I can't get AmFTP to work!") and loads of testing.
Jason "Caradog" HaymanFor putting up with my dodgy software and saying "Make sure you copyright it to Pagan Software!"
Neil BothwickFor the excellent Wirenet Internet service.
Ostsis SoftwareFor happily telling me that their firewall software didn't allow FTP proxies just after I set one up using their evaluation copy :P
Urban D MuellerFor providing the wonderful Aminet service, and for pointing me in the right direction with the ADT procedures.
Rob HutchinsonFor advice and code on using bsdsocket.library's events system.

Locale Translations

If you wish to contact anyone here, simply e-mail me and I will forward the message on to them.
Angel AlvarezEspañol - Spanish
Kimme UtsiNorsk - Norwegian
Filipe BrandaoFrançais - French
Alfredo MartinsPortuguês - Portuguese
Dennis PaulischDeutsch - German
Francesco MancusoItaliano - Italian
Christos DimitrakakisGreek - Greek
Vit SindlarCzech - Czech

Bugs

If you find a bug, please send any information to my e-mail address: rick@thehub.u-net.com and (this is important) try to include a log file if you could get one (Or if it's really bad, the debug log).

I'd also appreciate the details of the server you were using when the bug occured. But don't bother if it doesn't allow anonymous users.

There are a few known bugs (mainly the odd enforcer hit), but the only one you should ever encounter is if you have a very slow connection, or there is a lot of traffic on your modem. You'll only get maybe half a directory listing, if this happens just hit the refresh button.


Created on the amazing Commodore A1200, AmigaOS 3.5, PowerTower, Apollo 68040 40Mhz, 32Mb FAST RAM, 3x Hard-disks, 2x CD-ROMs, Wangtek 525Mb Tape Drive, Addtel 56k Modem.